package com.ruoyi.system.domain.module.attendance;

import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

/**
 * 考勤对象 attendance
 *
 * @author ruoyi
 * @date 2022-09-30
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("attendance")
public class Attendance implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /**
     * 物业公司id
     */
    private Integer propertyId;

    @Excel(name="物业公司")
    @TableField(exist = false)
    private String propertyName;

    @Excel(name="所属小区")
    @TableField(exist = false)
    private String estateName;

    /**
     * 小区id
     */
    private Integer estateId;

    /**
     * sys_user 表的id
     */
    private Integer sysUserId;

    @Excel(name = "姓名")
    private String sysUserName;
    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 打卡状态  1 - 正常  2-  迟到  3- 旷工  4 - 请假
     */
    private Integer state;

    @Excel(name="打卡状态")
    @TableField(exist = false)
    private String stateName;

    /**
     * 请假状态  0 - 非请假状态  1 -未处理  2 - 未批准 3 -  已批准
     */
    private Integer holidayState;

    @Excel(name="请假状态")
    @TableField(exist = false)
    private String holidayName;

    /**
     * 请求审批意见 （未批准的意见）
     */
    private String holidayResult;


    /**
     * 请假的审核时间
     */
    private Date holidayCheckTime;

    /**
     * 审批人
     */
    private Long holidayCheckSysUserId;

    /**
     * 打卡时间
     */
    @Excel(name="打卡时间")
    @TableField(exist = false)
    private String createTimeStr;

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 应该的打卡时间
     */
    private Date dutyTime;

    /**
     * 上午还是下午打卡  0 - 上午上班打卡 1 - 上午下班打卡  2 - 下午上班打卡  3 - 下午下班打卡
     */
    private Integer amOrPm;

    @Excel(name="打卡批次")
    @TableField(exist = false)
    private String amOrPmName;


    /**
     * 经度
     */
    private BigDecimal lng;

    /**
     * 纬度
     */
    private BigDecimal lat;

    /**
     * 打卡地点
     */
    private String address;

    /**
     * 备注信息
     */
	@Excel(name="备注")
    private String remark;

    /**
     * 是否是外勤打卡 0 -正常  1-  外勤打卡 2 -  请假
     */
    private Integer isOut;

    @Excel(name="是否外勤")
    @TableField(exist = false)
    private String isOutName;

    /**
     * 图片 多个逗号分隔
     */
    private String imgs;

    /**
     * 请假开始日期
     */
    private Date leaveBeginDate;

    /**
     * 上午还是下午  上午  am   下午 pm
     */
    private String leaveBeginTime;

    /**
     * 请假结束日期
     */
    private Date leaveEndDate;

    /**
     * 上午还是下午   上午  am   下午 pm
     */
    private String leaveEndTime;

    /**
     * 累积的打卡次数  默认 1  请假的话 根据请假时间来统计
     */
    private Integer totalSignCount;

    /**
     * 考勤组id
     */
    private Integer dutyGroupId;



    @TableField(exist = false)
    private String dutyGroupName;

    @TableField(exist = false)
    @Excel(name = "结算开始日期")
    private String beginDate;

    /**
     * 结算结束日期
     */
    @TableField(exist = false)
    @Excel(name = "结算结束日期")
    private String endDate;

}
